package com.ctshk.rpc.order.scenic.dto.app;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;

@Data
@ApiModel(value = "ScenicOrderAppOrderDetailDTO", description = "景点门票-APP-订单详情")
public class ScenicOrderAppOrderDetailDTO implements Serializable {
    @ApiModelProperty(value = "订单ID")
    private Long orderId;
    @ApiModelProperty(value = "景点产品id")
    private Long productId;
    @ApiModelProperty(value = "景点名称")
    private String productName;
    @ApiModelProperty(value = "类型名称")
    private String attrTypeName;
    @ApiModelProperty(value = "规格名称")
    private String attrName;
    @ApiModelProperty(value = "门票类型")
    private String attr2Name;
    @ApiModelProperty(value = "门票规格")
    private String attr1Name;
    @ApiModelProperty(value = "景点产品门票id,多个逗号分隔")
    private String productTicketsId;
    @ApiModelProperty(value = "备注")
    private String remark;
    @ApiModelProperty(value = "优惠券代码")
    private String couponCode;
    @ApiModelProperty(value = "优惠券抵扣金额")
    private BigDecimal couponDeduction;
    @ApiModelProperty(value = "会员积分抵扣(100积分抵扣1元人民币,需换算)")
    private BigDecimal integralDeduction;
    @ApiModelProperty(value = "积分")
    private Integer integral;
    @ApiModelProperty(value = "使用积分")
    private Integer usingPoints;
    @ApiModelProperty(value = "会员ID")
    private Long memberId;
    @ApiModelProperty(value = "订单总额")
    private BigDecimal orderAmount;
    @ApiModelProperty(value = "订单号")
    private String orderNumber;
    @ApiModelProperty(value = "查询编号")
    private String queryNumber;
    @ApiModelProperty(value = "付款状态")
    private Integer paymentStatus;
    @ApiModelProperty(value = "预定状态")
    private Integer scheduledStatus;
    @ApiModelProperty(value = "取消状态")
    private Integer cancelStatus;
    @ApiModelProperty(value = "产品类型")
    private Integer productType;
    @ApiModelProperty(value = "付款到期时间")
    private LocalDateTime payExpireDate;
    @ApiModelProperty(value = "销售方式(1：单品销售 2：打包销售")
    private Integer salesMethods;
    @ApiModelProperty(value = "联系人姓")
    private String surname;
    @ApiModelProperty(value = "联系人名")
    private String name;
    @ApiModelProperty(value = "联系人姓名")
    private String contactName;
    @ApiModelProperty(value = "联系人英文姓")
    private String contactEnSurname;
    @ApiModelProperty(value = "联系人英文名")
    private String contactEnName;
    @ApiModelProperty(value = "联系人手机")
    private String contactMobile;
    @ApiModelProperty(value = "联系人手机区号id")
    private Long contactMobileAreaCodeId;
    @ApiModelProperty(value = "联系人手机区号")
    private String contactMobileAreaCode;
    @ApiModelProperty(value = "联系人邮箱")
    private String contactEmail;
    @ApiModelProperty(value = "称谓(1:先生;2:女士;3:小姐;4:男童;5:女童)")
    private Integer appellation;
    @ApiModelProperty(value = "门票数量")
    private Integer productTicketNumber;
    @ApiModelProperty(value = "单张门票价格")
    private BigDecimal singleTicketFee;
    @ApiModelProperty(value = "订单创建时间")
    private LocalDateTime gmtCreate;
    @ApiModelProperty(value = "预定退改须知")
    private String customerNotice;
    @ApiModelProperty(value = "预定服务费类型")
    private Integer reserveChargeType;
    @ApiModelProperty(value = "预定服务费")
    private BigDecimal reserveCharge;
    @ApiModelProperty(value = "旅客信息列表")
    private List<ScenicOrderAppOrderDetailTouristDTO> touristList = new ArrayList<>();
    @ApiModelProperty(value = "订单状态")
    private Integer orderStatus;
    @ApiModelProperty(value = "封面图")
    private String coverPhoto;
    @ApiModelProperty(value = "景点地址")
    private String scenicLocation;
}